<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.2.2" />
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
/*
  border: 1px solid red;
*/
}

body {
  margin: 1em 5% 1em 5%;
}

a {
  color: blue;
  text-decoration: underline;
}
a:visited {
  color: fuchsia;
}

em {
  font-style: italic;
}

strong {
  font-weight: bold;
}

tt {
  color: navy;
}

h1, h2, h3, h4, h5, h6 {
  color: #527bbd;
  font-family: sans-serif;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}

h1 {
  border-bottom: 2px solid silver;
}
h2 {
  border-bottom: 2px solid silver;
  padding-top: 0.5em;
}

div.sectionbody {
  font-family: serif;
  margin-left: 0;
}

hr {
  border: 1px solid silver;
}

p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

pre {
  padding: 0;
  margin: 0;
}

span#author {
  color: #527bbd;
  font-family: sans-serif;
  font-weight: bold;
  font-size: 1.1em;
}
span#email {
}
span#revision {
  font-family: sans-serif;
}

div#footer {
  font-family: sans-serif;
  font-size: small;
  border-top: 2px solid silver;
  padding-top: 0.5em;
  margin-top: 4.0em;
}
div#footer-text {
  float: left;
  padding-bottom: 0.5em;
}
div#footer-badges {
  float: right;
  padding-bottom: 0.5em;
}

div#preamble,
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
  margin-right: 10%;
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.admonitionblock {
  margin-top: 2.5em;
  margin-bottom: 2.5em;
}

div.content { /* Block element content. */
  padding: 0;
}

/* Block element titles. */
div.title, caption.title {
  font-family: sans-serif;
  font-weight: bold;
  text-align: left;
  margin-top: 1.0em;
  margin-bottom: 0.5em;
}
div.title + * {
  margin-top: 0;
}

td div.title:first-child {
  margin-top: 0.0em;
}
div.content div.title:first-child {
  margin-top: 0.0em;
}
div.content + div.title {
  margin-top: 0.0em;
}

div.sidebarblock > div.content {
  background: #ffffee;
  border: 1px solid silver;
  padding: 0.5em;
}

div.listingblock {
  margin-right: 0%;
}
div.listingblock > div.content {
  border: 1px solid silver;
  background: #f4f4f4;
  padding: 0.5em;
}

div.quoteblock > div.content {
  padding-left: 2.0em;
}

div.attribution {
  text-align: right;
}
div.verseblock + div.attribution {
  text-align: left;
}

div.admonitionblock .icon {
  vertical-align: top;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: underline;
  color: #527bbd;
  padding-right: 0.5em;
}
div.admonitionblock td.content {
  padding-left: 0.5em;
  border-left: 2px solid silver;
}

div.exampleblock > div.content {
  border-left: 2px solid silver;
  padding: 0.5em;
}

div.verseblock div.content {
  white-space: pre;
}

div.imageblock div.content { padding-left: 0; }
div.imageblock img { border: 1px solid silver; }
span.image img { border-style: none; }

dl {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
dt {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-style: italic;
}
dd > *:first-child {
  margin-top: 0;
}

ul, ol {
    list-style-position: outside;
}
ol.olist2 {
  list-style-type: lower-alpha;
}

div.tableblock > table {
  border: 3px solid #527bbd;
}
thead {
  font-family: sans-serif;
  font-weight: bold;
}
tfoot {
  font-weight: bold;
}

div.hlist {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
div.hlist td {
  padding-bottom: 5px;
}
td.hlist1 {
  vertical-align: top;
  font-style: italic;
  padding-right: 0.8em;
}
td.hlist2 {
  vertical-align: top;
}

@media print {
  div#footer-badges { display: none; }
}

div#toctitle {
  color: #527bbd;
  font-family: sans-serif;
  font-size: 1.1em;
  font-weight: bold;
  margin-top: 1.0em;
  margin-bottom: 0.1em;
}

div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  margin-top: 0;
  margin-bottom: 0;
}
div.toclevel2 {
  margin-left: 2em;
  font-size: 0.9em;
}
div.toclevel3 {
  margin-left: 4em;
  font-size: 0.9em;
}
div.toclevel4 {
  margin-left: 6em;
  font-size: 0.9em;
}
/* Workarounds for IE6's broken and incomplete CSS2. */

div.sidebar-content {
  background: #ffffee;
  border: 1px solid silver;
  padding: 0.5em;
}
div.sidebar-title, div.image-title {
  font-family: sans-serif;
  font-weight: bold;
  margin-top: 0.0em;
  margin-bottom: 0.5em;
}

div.listingblock div.content {
  border: 1px solid silver;
  background: #f4f4f4;
  padding: 0.5em;
}

div.quoteblock-content {
  padding-left: 2.0em;
}

div.exampleblock-content {
  border-left: 2px solid silver;
  padding-left: 0.5em;
}

/* IE6 sets dynamically generated links as visited. */
div#toc a:visited { color: blue; }
</style>
<title>Launching PASA via a Web Interface</title>
</head>
<body>
<div id="header">
<h1>Launching PASA via a Web Interface</h1>
</div>
<div id="preamble">
<div class="sectionbody">
<p>PASA can be installed as an institutional service to faciliate access by many users, provide more secure control over database manipulation, and to consolidate computational resources.  This more advanced setup involves web-based job submissions, a MySQL database that retains a queue of submitted jobs, and a PASA daemon that runs on an execution server which picks up the submitted jobs and processes them serially.</p>
<p>Users would access the PASA system through a web page <a href="images/pasa_front_page.gif">(example)</a>.</p>
<p>From this front page, users would be able to do the following:</p>
<ul>
<li>
<p>
submit alignment and assembly jobs <a href="images/submit_page.gif">(link to image)</a>.
</p>
</li>
<li>
<p>
perform annotation comparisons <a href="images/annot_compare_page.gif">(link to image)</a>.
</p>
</li>
<li>
<p>
run an analysis of alternative splicing
</p>
</li>
</ul>
<p>Fully utilizing this system involves a few additional steps to the main PASA installation instructions.</p>
</div>
</div>
<h2>Installing the PASA Job Submission Portal</h2>
<div class="sectionbody">
<p>The PASA/pasa_admin_cgi directory contains the CGI scripts that provide the web-based submission pages.  Install these in your cgi-bin area similarly to the PASA/cgi-bin scripts installed previously.</p>
</div>
<h2>The PASA Administration MySQL Database</h2>
<div class="sectionbody">
<p>This database contains all data pertaining to jobs submitted to PASA through this system.  It is polled periodically by the PASA daemon to identify submitted jobs and it is used to track the status of each job.</p>
<p>Create this database by sourcing the file: PASA/schema/PASA2_admin.schema</p>
<p>ie.</p>
<div class="literalblock">
<div class="content">
<pre><tt>% mysql
% create database pasa_admin_db
% use pasa_admin_db
% source 'PASA/schema/PASA2_admin.schema'</tt></pre>
</div></div>
</div>
<h2>Updating the Configuration File</h2>
<div class="sectionbody">
<p>Your pasa configuration file: PASA/pasa_conf/conf.txt should include the following settings:</p>
<div class="literalblock">
<div class="content">
<pre><tt>PASA_ADMIN_EMAIL=your_email@where_you_are.org
PASA_ADMIN_DB=pasa_admin_db
BASE_PASA_URL=http://hostname/cgi-bin/</tt></pre>
</div></div>
<p>What's most critical above is that the PASA_ADMIN_DB correspond to the pasa administration database you created above.</p>
</div>
<h2>Starting the PASA Daemon</h2>
<div class="sectionbody">
<p>The PASA daemon should be started on the server that is destined to run PASA, including the alignment steps involving GMAP, BLAT, and/or SIM4, the PASA alignment assembly, and any other tasks routinely performed by the PASA pipeline.</p>
<p>To start the daemon, do the following:</p>
<div class="literalblock">
<div class="content">
<pre><tt>% cd PASA/pasa_daemon
% ./pasa2pd</tt></pre>
</div></div>
<p>The daemon will poll the admin database every 30 seconds, pick up new jobs, and process them serially.  The daemon emails the user and the administrator before and after processing each job, indicating the job status, and providing a URL to the final PASA database report.</p>
<p>For added security, you can set restrictive permissions on the conf.txt file which contains password data such that only the administrator can start the daemon and read the conf.txt file.</p>
</div>
<div id="footer">
<div id="footer-text">
Last updated 10-Sep-2007 11:15:10 EDT
</div>
</div>
</body>
</html>
